package com.basin.common.core.util;

import cn.hutool.core.collection.CollUtil;
import org.springframework.boot.SpringApplication;

import java.util.Map;

/**
 * @author: Sam ZHONG | sammy1997@aliyun.com
 * @date: 2025/6/8 11:00
 * @description:
 */
public final class ServerStartUtil {
    private ServerStartUtil() {
    }

    /**
     * 启动服务 规范体系下的一些启动流程
     *
     * @param clazz            启动类
     * @param args             启动参数
     * @param systemProperties 系统配置
     */
    public static void start(Class<?> clazz, String[] args, Map<String, String> systemProperties) {
        // 不关闭会影响启动 也不知道具体为什么 换了springboot3.5就这样了
        System.setProperty("nacos.logging.default.config.enabled", "false");
        // 如果服务有系统配置 则需要协助设置
        if (CollUtil.isNotEmpty(systemProperties)) {
            systemProperties.forEach(System::setProperty);
        }
        SpringApplication.run(clazz, args);
    }
}
